{{tag>Intrepid réseau internet courriel tutoriel BROUILLON}}

----

====== Comment envoyer l’IP de sa box automatiquement par courriel ======
===== 0. Pré-requis : savoir envoyer un courriel par SMTP en ligne de commande =====
  * Voir le tuto : [[comment_envoyer_un_mail_par_smtp_en_ligne_de_commande]]

===== 1. Envoyer l'IP externe de sa box par courriel dans un script =====
==== a. Récupérer l'IP externe de sa box ====
<file>GET whatismyip.org</file>
  * Cette commande renvoie des erreurs une fois sur deux, donc on va la lancer 2 ou 3 fois dans un script et récupérer l'IP dans un fichier.
<file>nano ~/getip</file>
  GET whatismyip.org > .myip
  echo "" >> .myip
  sleep 1
  GET whatismyip.org >> .myip
  echo "" >> .myip
  sleep 1
  GET whatismyip.org >> .myip
  echo "" >> .myip
<file>sh ~/getip</file>
<file>cat ~/.myip</file>
  92.122.18.135
  92.122.18.135
  92.122.18.135

==== b. Envoyer son IP de box à son courriel au bureau ====

  * Voir le tuto : [[comment_envoyer_un_mail_par_smtp_en_ligne_de_commande]]
== par msmtp ==

<file>cat ~/.myip | msmtp johnny@whitehouse.gov</file>
== par ssmtp ==
<file>cat ~/.myip | mail johnny@whitehouse.gov</file>

==== c. Compléter le script : récupérer l'IP ET l'envoyer ====

  * [[:tutoriel:comment_modifier_un_fichier|Modifier le fichier]] ~/getip pour qu'il intègre la commande msmtp (ou mail) à la dernière ligne:
<file>nano ~/getip</file>
  ...
  cat .myip | msmtp johnny@whitehouse.gov

  * Rendre le script exécutable :
<file>chmod 700 ~/getip</file>

=== Utilisation ===

  * Lancer le script
<file>sh ~/getip</file>

=== Vérification ===

  * Depuis votre client de messagerie, vérifiez que vous avez bien reçu le message attendu, soit 3 lignes avec l'adresse IP de la maison blanche ... si c'est là que votre box est branchée.


===== 2. Automatisation de l'envoi =====

==== a. Par la crontab ====

Le système [[..\cron|crontab]] intégré à unix/linux permet une programmation simple de l'exécution de commandes et scripts.

=== Modification de la crontab ===

  * Si la crontab de l'utilisateur existe, on la redirige vers un fichier
<file>crontab -l > cron</file>
<note important>On évite systématiquement l'édition par la commande crontab -e, parce que la perte de 50 lignes de programmation sur un serveur de production, ça fait toujours chaud aux oreilles !</note>
  * Puis on [[:tutoriel:comment_editer_un_fichier|modifie/crée le fichier]] cron en y ajoutant notre ligne de programmation :
<file>nano cron</file>
  23 8,12,15,18 * * 1-5 /home/johnny/getip
  # à 08:23 12:23 15:23 et 18:23 tous les jours du lundi au vendredi
  # parce que les soirs et week-end je suis à la maison
  # et que c'est encore plus simple de récupérer mon IP

=== Injection des modifications de la crontab ===

  * Créer le fichier cron ne suffit pas, il faut encore l'injecter dans le système crontab :
<file>crontab ~/cron</file>

== Vérification de la crontab ==

<file>crontab -l</file>
  ...
  23 8,12,15,18 * * 1-5 /home/johnny/getip
  ...

== Nettoyage ==

  * Pas de raison de laisser traîner son cron derrière soi, puisqu'on sait le recréer à volonté
<file>rm ~/cron</file>
==== b. Par autre chose que la crontab ...====
<note tip>Partie à compléter</note>
<note>
**Remarques :**
  * Si l'envoi répété de l'IP sature votre boîte de courriel, à vous de modifier la programmation.
</note>


===== Références =====

  * [[:cron|Crontab]]



== Contributeurs ==
[[utilisateurs:kerkael]] création de la page le 23/08/2009